package com.lam.common.utils.uuid;

import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import org.apache.commons.lang3.RandomUtils;

/**
 * ID生成器工具类
 * 
 * @author lam
 */
public class IdUtils {
	
	public static final int MAX_LIMIT = 10000;
	
	public static String getUid() {
		return String.valueOf(System.currentTimeMillis()*MAX_LIMIT + RandomUtils.nextInt(0, MAX_LIMIT)).substring(4);
	}
	
	public static String genId() {
		return IdGen.generateId(null);
	}
	
	public static String genId(String prefix) {
		return IdGen.generateId(prefix);
	}
	
	public static String genRandom(int length) {
		return IdGen.genRandom(length);
	}
	
	/**
	 * 获取随机UUID
	 * 
	 * @return 随机UUID
	 */
	public static String UUID() {
		return UUID.randomUUID().toString();
	}

	/**
	 * 简化的UUID，去掉了横线
	 * 
	 * @return 简化的UUID，去掉了横线
	 */
	public static String simpleUUID() {
		return UUID.randomUUID().toString(true);
	}

	/**
	 * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
	 * 
	 * @return 随机UUID
	 */
	public static String fastUUID() {
		return UUID.fastUUID().toString();
	}

	/**
	 * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
	 * 
	 * @return 简化的UUID，去掉了横线
	 */
	public static String fastSimpleUUID() {
		return UUID.fastUUID().toString(true);
	}

	public static  void main(String[] args){
		System.out.println(IdWorker.getTimeId());
		;
	}
}
